package oo;

import java.util.ArrayList;
import java.util.List;
import javax.faces.model.SelectItem;

import modalpanel.ModalPanel;

import package_.Klasa_;

import sesja.sesja_interface;
import sesja.sesjaimpl;
import szkola_database_entity.SzkolaUser;

import baza_mysql.Database;

public class rejestracja {//extends login{

	private sesja_interface sesja;
	private String przycisk="1",name,haslo,email;
	private Klasa_ kl;
	private SzkolaUser sz;
	private ModalPanel mp;
	public ModalPanel getMp() {
		return mp;
	}
	public void setMp(ModalPanel mp) {
		this.mp = mp;
	}
	public String getPrzycisk() {
		return przycisk;
	}
	public void setPrzycisk(String przycisk) {
		this.przycisk = przycisk;
	}
	public rejestracja(){
		mp=new ModalPanel();
		sesja=new sesjaimpl();
		try{
		//polaczenie.add_new_user(this);
		}
		catch(Exception e)
		{
			blad(this.getClass().toString(),this.getClass().getName(),e.getMessage());
		}
	}
	private void blad(String ... a){
		System.out.println("(Klasa)>"+a[0]+"(Metoda)>"+a[1]+ "(blad)>"+a[2]);
	}
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getHaslo() {
		return haslo;
	}
	public void setHaslo(String haslo) {
		this.haslo = haslo;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	private void czysc(){
		name=haslo=email="";
	}
	public String rejestruj(){
		return "rejestruj";
	}
	private void clear_fields(){
		this.setEmail("");
		this.setHaslo("");
		this.setName("");
	}
	private void przypisz(){
		sz.setEmail(this.getEmail());
		sz.setNazwa(this.getName());
		//sz.setPassword(this.getHaslo());
		sz.setRola("n");
	}
	public String dodaj() 
	{
		kl=new Klasa_();
		sz=new SzkolaUser();
		przypisz();
		clear_fields();
		return "start";
	}
	public String loguj(){
		sz=new SzkolaUser();
		sz.setEmail(getEmail());
		sz.setNazwa(getName());
		przypisz();
		SzkolaUser log_ok;
		if((log_ok=Klasa_.finduser_(sz))!=null){
			//add user email to session
			sesjaimpl ses=new sesjaimpl();
			sesjaimpl.F_insert_value_into_session("us", sz.getEmail());
			Klasa_.updateUserSession(log_ok,ses.F_getStr_sessionId());
			String rola=Klasa_.getRolaIfExist(log_ok);
			for(int a=0;a<sesjaimpl.array.length;a++)
				if(sesjaimpl.array[a][0].equals(rola))
					return sesjaimpl.array[a][1];
		}
		else
		{
			mp.setNaglowek("Logowanie");
			mp.setTresc("Brak użytkownika o podanych danych.");
			mp.setWynik(true);
		}
		return null;
	}
	public String wyloguj(){
		//pobranie danych sesji od usera i danych z sesji webowej,jesli ok, wylogowanie usera
		sz=new SzkolaUser();
		SzkolaUser log_ok;
		if (sesjaimpl.F_get_value_into_session("us")!=null)
		{
			sz.setEmail(sesjaimpl.F_get_value_into_session("us"));
			if((log_ok=Klasa_.finduser_(sz))!=null){
				Klasa_.updateUserSession(log_ok,"");
				sesjaimpl.F_delete_value_from_session("us");
			}
		}
		return "start";
	}
}
